From a5f01beb41a81f483d90eb4dd785822a8615f65f Mon Sep 17 00:00:00 2001
From: Gilles Dartiguelongue <eva@gentoo.org>
Date: Wed, 30 May 2018 08:44:18 +0200
Subject: [PATCH] build: Add control for optional dependencies

---
 meson.build       | 18 ++++++++++++++----
 meson_options.txt |  3 +++
 src/meson.build   | 12 ++++++++----
 3 files changed, 25 insertions(+), 8 deletions(-)
 create mode 100644 meson_options.txt

diff --git a/meson.build b/meson.build
index 1e1522c..45d7ed7 100644
--- a/meson.build
+++ b/meson.build
@@ -34,10 +34,20 @@ zlib_dep = dependency ('zlib')
 cairo_dep = dependency ('cairo')
 gdk_pixbuf_dep = dependency ('gdk-pixbuf-2.0')
 gusb_dep = dependency ('gusb', version: '>= 0.2.7')
-colord_dep = dependency ('colord', required: false)
-packagekit_dep = dependency ('packagekit-glib2', version: '>= 1.1.5', required: false)
-webp_dep = dependency ('libwebp', required: false)
-webpmux_dep = dependency ('libwebpmux', required: false)
+
+if get_option('colord')
+    colord_dep = dependency ('colord')
+endif
+
+if get_option('packagekit')
+    packagekit_dep = dependency ('packagekit-glib2', version: '>= 1.1.5')
+endif
+
+if get_option('webp')
+    webp_dep = dependency ('libwebp')
+    webpmux_dep = dependency ('libwebpmux')
+endif
+
 sane_dep = dependency ('sane-backends')
 msgfmt = find_program  ('msgfmt')
 itstool = find_program  ('itstool')
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000..570ecdd
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,3 @@
+option('colord', type: 'boolean', value: false)
+option('packagekit', type: 'boolean', value: false)
+option('webp', type: 'boolean', value: false)
diff --git a/src/meson.build b/src/meson.build
index 3f699eb..0c8965e 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -1,16 +1,20 @@
 vala_args = [ '--pkg=posix', '--vapidir=' + meson.current_source_dir () ]
 dependencies = [ glib_dep, gtk_dep, libhandy_dep, zlib_dep, cairo_dep, gdk_pixbuf_dep, gusb_dep, sane_dep ]
-if colord_dep.found ()
+if get_option('colord')
     vala_args += [ '-D', 'HAVE_COLORD' ]
     dependencies += colord_dep
 endif
-if packagekit_dep.found ()
+if get_option('packagekit')
     vala_args += [ '-D', 'HAVE_PACKAGEKIT' ]
     dependencies += packagekit_dep
 endif
-if webp_dep.found () and (not colord_dep.found () or webpmux_dep.found ()) # Webpmux only required if colord
+if get_option('webp')
     vala_args += [ '-D', 'HAVE_WEBP' ]
-    dependencies += [ webp_dep, webpmux_dep ]
+    dependencies += [ webp_dep ]
+    # Webpmux only required if colord
+    if get_option('colord')
+        dependencies += [ webpmux_dep ]
+    endif
 endif
 
 simple_scan = executable ('simple-scan',
-- 
2.26.3

